草庐IT

Java 反射与代码生成

全部标签

ruby - 如何在 Vim 中自动缩进 Ruby 源代码

假设我在.vimrc中设置了setcindentdeffunc()后跟Enter,然后输入end,它是缩进的(不对齐def)如何重新缩进end关键字(将其与def对齐)。即使使用endwise.vim插件也不能解决问题https://github.com/tpope/vim-endwise.git它添加自动end关键字,但再次缩进 最佳答案 尝试使用smartindent而不是cindent(遵循类似C的缩进行为),并打开文件类型特定的缩进。您可能还需要关闭vi兼容性。尝试将此添加到您的.vimrc中:"Turnoffvicompa

ruby - ruby 是否具有与 synchronize 关键字等效的 Java?

ruby是否有Java中的synchronize关键字?我使用的是1.9.1,但我不太明白执行此操作的优雅方式。 最佳答案 它没有synchronize关键字,但您可以通过Monitor类获得非常相似的东西。以下是ProgrammingRuby1.8一书中的示例:require'monitor'classCounter 关于ruby-ruby是否具有与synchronize关键字等效的Java?,我们在StackOverflow上找到一个类似的问题: http

ruby-on-rails - 使用 RVM 在 vi​​m 中重新生成 ctags

我的.vimrc中有以下代码:maprt:!ctags--extra=+f-R*这会为我的当前目录生成ctags。我正在使用RVM,我正在从事不同的项目,使用不同的ruby​​版本(通过RVMgemsets。我每个项目都有不同的$GEM_PATH,我也想为这个路径中的gem生成ctags。上面的行应该如何测试是否设置了$GEM_PATH变量,并处理这些路径?或者更好的方法是如何检查我是否有.rvmrc文件,并根据该文件的内容生成ctags? 最佳答案 我用bundler来管理gem,所以我用ctags-R`bundleshowrai

ruby-on-rails - 在 Rails 模型中动态生成范围

我想动态生成作用域。假设我有以下模型:classProduct我们可以用基于POSSIBLE_SIZES常量的东西替换scope调用吗?我认为我违反了DRY以重复它们。 最佳答案 你可以做classProduct但我个人更喜欢:classProduct 关于ruby-on-rails-在Rails模型中动态生成范围,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/14061595/

Ruby:代码片段:(num & 1) == 0 究竟做了什么?

我正在观看来自PragProg的元编程视频,DaveThomas展示了这段代码:moduleMathclassfalseputsMath.is_even?2#=>true现在我明白这里发生了什么,但我不知道Math.is_even?的(num&1)部分究竟发生了什么?类方法。我知道这是一个按位运算,但仅此而已。有人可以向我解释那行代码是怎么回事吗?谢谢。 最佳答案 &是按位与运算符。执行(num&1)检查数字的最后一位(最低有效位)是否已设置。设置为奇数,不设置为偶数。这只是一种快速检查数字是偶数还是奇数的方法。您可以在此处查看ru

ruby - 如何检测我的代码运行的是 "inside"Sidekiq 服务器还是 Puma?

我使用Puma作为网络服务器,使用Sidekiq作为我的队列运行器。对于多种事物(数据库连接、Redis连接、其他外部服务),我使用ConnectionPoolgem来管理对连接的安全访问。现在,根据我是在Sidekiq还是Puma的上下文中运行,我需要这些池的大小不同(分别与Sidekiq线程或Puma线程的数量一样大,而且它们是不同的)在您的初始化程序中,根据执行上下文了解连接池大小的最佳方法是什么?谢谢! 最佳答案 您使用Sidekiq.server?当不在Sidekiq进程本身内运行时返回nil。

ruby - 使用 Rspec 2 和 Mocha 获取 Rails 3 生成器

我已经按照我能够在网上找到的使用Rspec2和Mocha配置Rails3的所有步骤进行操作。在我的Gemfile中:group:developmentdogem'rails3-generators'gem"rspec",'>=2.0.0.beta.19'gem"rspec-rails",'>=2.0.0.beta.19'endgroup:testdogem"faker"gem"rspec",'>=2.0.0.beta.19'gem"rspec-rails",'>=2.0.0.beta.19'gem"machinist",'>=2.0.0.beta1'gem"mocha"gem"capy

css - Compass SCSS 小写颜色代码

在我的团队中,我们有相同版本的Compass(它是Compass0.12.2Alnilam)。当Compass编译我的SCSS时,颜色代码在SCSS中从大写(#A0CAE3)更改为小写(#a0cae3)。只有我有这个问题,其他开发者有大写的颜色代码。为什么? 最佳答案 应该检查“sass”的版本。sass-vSass版本3.1.15在我的情况下工作正常。使用卸载所有已安装的“sass”版本gemuninstallsass并安装3.1.15版本geminstallsass-v3.1.15

ruby-on-rails - 通过生成器添加从 Rails 引擎 gem 到应用程序的新迁移

我正在用ruby​​gem构建Rails引擎。它现在包括一些在您运行时调用的迁移:railsgmyengine:install生成器中的代码如下:moduleMyEnginemoduleGeneratorsclassInstallGenerator但是,如果我再次运行railsgmyengine:install,它会失败并出现以下错误:Anothermigrationisalreadynamedmigration1:/Users/jh/Code/Web/demoapp/db/migrate/20130327222221_migration1.rb我希望它只是默默地忽略已经存在迁移的事实

ruby-on-rails - 我的非模型/非 Controller 代码应该放在哪里?

我编写了一个遵循常规目录结构的Rails应用程序(模型代码在模型中,Controller代码在Controller中)。但我现在正在开发一项新功能,为此我编写了一些(我称之为)“服务”代码。新功能是将一些数据导入系统,目前是两个类来进行导入,但可以扩展到更多。我不认为新代码属于模型,因为它不对任何对象建模(它也不直接与任何单个对象相关。我当然不认为它属于Controller,因为它不是表示逻辑。因此,我创建了一个“app/services”目录并将其放在那里。我还创建了一个“test/services”目录,用于放置我的测试。我认为一切都很好,但是当我运行“rake:test”或“au